/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dao;

import Entidad.*;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
 *
 * @author ANDREZ
 */
public class GeneralDao {
    
       private static GeneralDao INSTANCE = new GeneralDao();
    private GeneralDao() {
    }
    public static GeneralDao getInstance(){
    return INSTANCE;
    }
    public GeneralBE ListarDatosGenerales()
    {
        GeneralBE cc = null;
        String sql ="{call General_ListarDatosGenerales_pa()}";
        Connection c = new bd().getConnectionSQL();
       CallableStatement cs;
        ResultSet rs;
         boolean EsPrimero = true;
        try {
            cs = c.prepareCall(sql);

            rs = cs.executeQuery();
             List<GeneralBE.DetalleGeneralBE> listadetalle = new ArrayList();
            while(rs.next())
            {  GeneralBE ge = new GeneralBE();
                 GeneralBE.DetalleGeneralBE det = ge.new DetalleGeneralBE();
                if(EsPrimero==true){
               
                 cc = new GeneralBE();
                  cc.setId(rs.getInt("IdGeneral"));
                  cc.setAnoelectivo(rs.getInt("AnoLectivo"));
                  cc.setFechainicio(rs.getDate("FechaInicio"));
                  cc.setFechafin(rs.getDate("FechaFin"));
                  cc.setFechainiciomatricula(rs.getDate("FechaInicioMatricula"));
                  cc.setFechafinmatricula(rs.getDate("FechaFinMatricula"));
                  cc.setDescripcion(rs.getString("Descripcion"));
                  BaseBE tipo = new BaseBE();
                  tipo.setId(rs.getInt("IdTipoNota"));
                  tipo.setDescripcion(rs.getString("DescripcionTipo"));
                  cc.setTiponota(tipo);
                  EsPrimero=false;
               }
                 det.setFechainicio(rs.getDate("FechaInicioNota"));
                  det.setFechafin(rs.getDate("FechaFinNota"));
                  det.setDescripcion(rs.getString("DescripcionNota"));
                  BaseBE tipo = new BaseBE();
                  tipo.setId(rs.getInt("IdTipoNota2"));
                  tipo.setDescripcion(rs.getString("DescripcionTipo2"));
                  det.setTiponota(tipo);
                  listadetalle.add(det);
                  
            } 

        
            cc.setNotas(listadetalle);
                  
          
        } catch (SQLException ex) {
            Logger.getLogger(NotaDao.class.getName()).log(Level.SEVERE, null, ex);
        }

        return  cc;
    }
}
